package com.aidex.biz.mapper;

import com.aidex.biz.domain.Customer;
import com.aidex.biz.domain.PushRule;
import com.aidex.common.core.mapper.BaseMapper;
import com.aidex.biz.domain.PushRuleUser;

import java.util.List;

/**
 * 规则用户对应Mapper接口
 *
 * @author sean
 * @email 2074844820@qq.com
 * @date 2025-03-11
 */
public interface PushRuleUserMapper extends BaseMapper<PushRuleUser> {

    /**
     * 批量删除规则用户对应
     *
     * @param ids 需要删除的规则用户对应ID集合
     * @return
     */
    public int deletePushRuleUserByIds(String[] ids);

    /**
     * 获取最大编号
     *
     * @param pushRuleUser 规则用户对应
     * @return 结果
     */
    public Integer findMaxSort(PushRuleUser pushRuleUser);

    /**
     * 获取用户外链规则用户
     *
     * @param pushRuleUser
     * @return
     */
    public List<PushRuleUser> findUserJoinRuleList(PushRuleUser pushRuleUser);

    /**
     * 根据主表id批量删除
     *
     * @param ids
     * @return
     */
    public int deletePushRuleUserByRuleIds(String[] ids);

    /**
     * 根据规则查询分配用户
     *
     * @param pushRule
     * @return
     */
    public List<PushRuleUser> findShareUserByRule(PushRule pushRule);

    /**
     * 查找某个规则内的区域经理
     *
     * @param pushRuleUser
     * @return
     */
    public List<PushRuleUser> findQyjlInRuleUser(PushRuleUser pushRuleUser);

    /**
     * 查找某个deptId内的区域经理
     *
     * @param deptId
     * @return
     */
    public List<PushRuleUser> findQyjlByDeptId(String deptId);


    /**
     * 重置日接单数量
     *
     * @return
     */
    public int resetDayShareCount();

    /**
     * 修改接单状态
     *
     * @param pushRuleUser
     * @return
     */
    public int changeWorkingPushRuleUser(PushRuleUser pushRuleUser);

    /**
     * 根据规则查询所有分配用户
     *
     * @param pushRule
     * @return
     */
    public List<PushRuleUser> findAllShareUserByRule(PushRule pushRule);

    /**
     * 查找城市的区域经理
     *
     * @param city
     * @return
     */
    public List<PushRuleUser> findQyjlByCity(String city);

    public List<PushRuleUser> findPushUserListByRuleIds(List<PushRule> pushRules);

    public int resetRuleUserTotalCount();
}
